﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CapaEntidades
{
    public class entFactory
    {
        public List<List<String>> textos = new List<List<String>>();

        #region singleton
        private static readonly entFactory _instancia = new entFactory();
        public static entFactory Instancia
        {
            get { return entFactory._instancia; }
        }
        #endregion

        public entAnonimo CrearObjeto(String obj)
        {
            entAnonimo objeto = null;
            //LeerDatos();
            switch (/*ObjetoACrear(obj)*/obj)
            {
                case "entAula":
                    objeto = new entAula();
                    break;
                case "entCurso":
                    objeto = new entCurso();
                    break;
                case "entDocente":
                    objeto = new entDocente();
                    break;
                case "entGrupo":
                    objeto = new entGrupo();
                    break;
                case "entHorario":
                    objeto = new entHorario();
                    break;
                case "entUsuario":
                    objeto = new entUsuario();
                    break;

            }
            return objeto;
        }

        private void LeerDatos()
        {
            StreamReader reader = new StreamReader("txtFabrica/txtFabricaEntidades.csv");
            while (true)
            {
                String linea = reader.ReadLine();
                if (linea == null)
                {
                    reader.Close();
                    break;
                }
                List<String> fila = new List<String>();
                fila.AddRange(linea.Split(','));
                textos.Add(fila);
            }
        }

        private String ObjetoACrear(String obj)
        {
            String objeto = null;
            for (int i = 0; i < textos.Count; i++)
            {
                if (textos[i][0] == obj)
                {
                    objeto = textos[i][2];
                }
            }
            return objeto;
        }
    }
}
